#pragma once
#include<assert.h>

//节点类
template <class T>
struct ListNode
{

	typedef ListNode<T> Node;
	Node(T x = T())
	{
		_prev = nullptr;
		_next = nullptr;
		_data = x;

	}


	ListNode<T>* _next;
	ListNode<T>* _prev;
	T _data;

};


//迭代器类
template <class T, class Ref, class Ptr>
